package main

import(
	"fmt"
	//"unsafe"
)

/*const (
	a = "abc"
	b = len(a)
	c = unsafe.Sizeof(a)
)*/

func main() {
	/*const length int = 10
	const width int = 5
	var area int
	const a, b, c = 1, false, "str" // 多重数据

	area = length * width
	fmt.Printf("面积为：%d", area)// Pringf类似C语言，但PrintLn输出双引号内所有内容，包括%d
	fmt.Println()
	fmt.Println(a, b, c)*/

	/*fmt.Println(a, b, c)*/

	/*const (
		a = iota // 0
		b		 // 1
		c		 // 2
		d = "ha" // 独立值，iota += 1
		e		 // "ha" iota += 1
		f = 100  // iota += 1
		g		 // 100 iota += 1
		h = iota // 7，恢复计数
		i		 // 8
	)
	fmt.Println(a, b, c, d, e, f, g, h, i)*/

	const (
		i = 1 << iota
		j = 3 << iota
		k
		l
	)
	fmt.Println("i = ", i)// i=1 左移0位，不变
	fmt.Println("j = ", j)// j=3 左移1位，变为二进制110，即6
	fmt.Println("k = ", k)// k=3 左移2位，变为二进制1100，即12
	fmt.Println("l = ", l)// l=3 左移3位，变为二进制11000，即24
	// <<n==(2^n)

}
